第1关：回文素数
from math import *
def prime(n):
    for j in range(2, int(sqrt(n))+1):
        if n%j==0:
           return 0
    return 1

x = int(input())
i = 0
n = 2
while i<x:
    if str(n)==str(n)[::-1] and prime(n):
        print(n, end=' ')
        i+=1
    n+=1

第2关：反素数
from math import*
def prime(n):
    for j in range(2,int(sqrt(n))+1):
        if n%j==0:
            return 0
    return 1
    
def reverse(m):
    m1= int(m[::-1])
    if str(m1)!=m and prime(m1):
        return 1
    return 0

x = int(input())
i, a = 0, 2
while i<x:
    if prime(a) and reverse(str(a)):
        print(a, end=' ')
        i+=1
    a+=1

第3关：哥德巴赫猜想
def is_prime(n):
    """判断素数的函数,接收一个正整数为参数，参数是素数时返回True，否则返回False"""
    #=======================================================
    # 补充你的代码    
    if n<2:
        return False
    for i in range(2,n):
        if n%i==0:
           return False
    else:
        return True
    #=======================================================

    
def goldbach_conjecture(num):
    """ 哥德巴赫猜想, 接收一个不小于4的正整数为参数。
    当参数为不小于4的偶数时，将其分解为两个素数的加和，按小数+数的格式输出。
    有多种组合时全部输出，但不输出重复的组合，例如输出8=3+5，不输出8=5+3。
    参数为奇数或小于4时，输出'Data error!'
    """
    #=======================================================
    # 补充你的代码
    if num<4 or num%2!=0:
        print('Data error!')
    else:
        for j in range(2,num):
            if is_prime(j) and is_prime(num-j) and j<=(num-j):
                print(f'{num}={j}+{(num-j)}')
    #=======================================================

if __name__ == '__main__':
    positive_even = int(input())        # 输入一个正数
    goldbach_conjecture(positive_even)

第4关：货币转换
a = input().strip()
b = float(input())
if b<=0:
    print('Data error!')
elif '$' in a:
    c = eval(a[0:-1])*b
    print(f'{c:.2f}¥ ')
elif '¥' in a:
    c = int(a[0:-1])/b
    print(f'{c:.2f}$')
else:
    print('Data error!')


第5关：个人信息提取
a = input()
b = a.split(' ')
for i in range(1980, 2023):
    if str(i) in b[4]:
       break
print('姓名：' + b[1])
print('班级：' + b[2])
print('出生：' + str(i) + '年')

第6关：身份证号基本信息
a = input()
if a[16] in '02468x':
    print(f'出生：{a[6:10]}年{a[10:12]}月{a[12:14]}日')
    print('性别：女')
elif a[16] in '13579':
    print(f'出生：{a[6:10]}年{a[10:12]}月{a[12:14]}日')
    print('性别：男') 

第7关：各位数字之和为5的数
a = int(input())
for i in range(a+1):
    if i==5:
        print(i, end=' ')
    elif len(str(i))==2 and int(str(i)[0])+int(str(i)[1])==5:
        print(i, end=' ')
    elif len(str(i))==3 and int(str(i)[0])+int(str(i)[1])+int(str(i)[2])==5:
        print(i, end=' ')

第8关：字符串长度
print(len(input()))

第9关：字符串加密
a = 'ABCDEFGHIGKLMNOPQRSTUVWXYZ'
b = 'FGHIGKLMNOPQRSTUVWXYZABCDE'
c = 'abcdefghijklmnopqrstuvwxyz'
d = 'defghijklmnopqrstuvwxyzabc'
s = input()
res = ''
for i in s:
    n = a.find(i)
    m = c.find(i)
    if n==-1 and m==-1:
        res+=i
    elif n!=-1 and m==-1:
        res+=b[n]
    elif n==-1 and m!=-1:
        res+=d[m]
print(res)

第10关：输出单词
a = input().split(' ')
for j in a:
    print(j)

第11关：字符大小写转换
s = input()
res = ''
for c in s:
    if 'a'<=c<'z':
        res += c.upper()
    elif 'A'<=c<='Z':
        res += c.lower()
    else:
        res += c
print(res)

第12关：查找指定字符
a = input()
b = input()
flag = 0
for i in b:
    if i==a:
        print('index = ' + str(b.find(i)))
        flag = 1
        break
if flag==0:
    print('Not Found')

第13关：随机密码生成器
from random import *
n, s = map(int, input().split(','))
a = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\()*+,-.'
seed(s)
for i in range(n):
    c = choice(a)
    print(c, end='')

第14关：模拟生成微软序列号
from random import *

n = int(input())
s = int(input())
seed(s)
c = 'BCEFGHJKMPQRTVWXY2346789'
for i in range(n):
    key = ''
    for j in range(1, 26):
        key += choice(c)
        if j%5==0 and j!=25:
            key += '-'
    print(key)

第15关：数列求和
a = int(input())
b = int(input())
if a<1 or a>9 or b<0:
    print('data error')
else:
    s = d = 0
    for i in range(b):
        d = d*10+a
        s += d
    print(s)

第16关：单词个数
a = input().split(' ')
print(len(a))